// 公众号
const officialAccount = {
	// 关注当前公众号的用户列表
	followList: [],
	// 公众号更新时候调用的通知函数
	notify() {
		const len = this.followList.length;
		if (len > 0) {
			// 通知已关注该公众号的每个用户，有内容更新
			for (let user of this.followList) {
				user.update();
			}
		}
	},
	// 添加新的关注的用户
	add(user) {
		this.followList.push(user);
	},
	// 移除不再关注的用户
	remove(user) {
		const idx = this.followList.indexOf(user);
		if (idx !== -1) {
			this.followList.splice(idx, 1);
		}
	},
	// 计算关注公众号的总的用户数
	count() {
		return this.followList.length;
	},
};

// 新建用户的类
class User {
	constructor(name) {
		this.name = name;
	}
	// 接收公众号内容更新的通知
	update() {
		console.log(`${this.name}接收到了公众号的内容更新`);
	}
}

// 创建两个新的用户
const zhangSan = new User('张三');
const liSi = new User('李四');

// 公众号添加关注的用户
officialAccount.add(zhangSan);
officialAccount.add(liSi);

// 公众号有新内容更新
officialAccount.notify();
console.log(`当前关注公众号的用户数量是：${officialAccount.count()}`);

// 张三不再关注公众号
officialAccount.remove(zhangSan);

// 公众号有新内容更新
officialAccount.notify();
console.log(`当前关注公众号的用户数量是：${officialAccount.count()}`);
